package com.yuandian.customer.perception.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.api.customer_perception.po.BusinessStatisticsParams;
import com.yuandian.api.customer_perception.po.DayReportParams;
import com.yuandian.api.customer_perception.vo.BusinessStatisticsVo;
import com.yuandian.api.customer_perception.vo.ReportBusinessFailStatisticsTopVo;
import com.yuandian.api.customer_perception.vo.ReportBusinessStatisticsTopVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 说明：业务统计mapper接口
 * @Author yanjun
 * @Date 2021/3/17 15:35
 */
@Mapper
public interface BusinessStatisticsMapper {

    /**
     * 查询业务统计列表
     * @param params 业务统计请求参数对象
     * @return 业务统计vo对象集合
     */
    //@SqlAlias("查询业务统计列表")
    List<BusinessStatisticsVo> queryBusinessStatisticsList(
            @Param("params") BusinessStatisticsParams params, Page<BusinessStatisticsVo> page);

    /**
     * 查询业务统计列表
     * @param params 业务统计请求参数对象
     * @return 业务统计vo对象集合
     */
    //@SqlAlias("根据业务员ID-查询业务统计列表")
    List<BusinessStatisticsVo> queryBusinessStatisticsListByOperatorId(
			@Param("params") BusinessStatisticsParams params, Page<BusinessStatisticsVo> page);

    /**
     * 查询业务统计列表的业务编码和业务编号-不分页
     * @param params 业务统计请求参数对象
     * @return 业务统计vo对象集合
     */
    //@SqlAlias("查询业务统计列表的业务编码和业务编号-不分页")
    List<BusinessStatisticsVo> queryBusinessStatisticsListNoPage(@Param("params") BusinessStatisticsParams params);
    /**
     * 查询运维日报业务统计(地市)topN
     * @param params 运维日报请求参数
     * @return 通用返回对象
     */
    //@SqlAlias("查询运维日报业务统计(地市)topN")
    List<ReportBusinessStatisticsTopVo> queryReportBusinessAreaTopN(@Param("params") DayReportParams params);

    /**
     * 查询运维日报业务统计(营业厅)topN
     * @param params 运维日报请求参数
     * @return 通用返回对象
     */
    //@SqlAlias("查询运维日报业务统计(营业厅)topN")
    List<ReportBusinessStatisticsTopVo> queryReportBusinessHallTopN(@Param("params") DayReportParams params);

    /**
     * 查询运维日报业务失败统计topN
     * @param params 运维日报请求参数
     * @return 运维日报业务失败统计top vo对象集合
     */
    //@SqlAlias("查询运维日报业务失败统计topN")
    List<ReportBusinessFailStatisticsTopVo> queryReportBusinessFailTopN(@Param("params") DayReportParams params);
}
